The present invention relates generally to the field of connection oriented communications networks and more particularly, to a method for stacked address transport in such networks.
According to preferred embodiments, the invention relates to the signalling of network messages across multiple network entities through which message addresses are not routable. Such signalling is accomplished by transporting, together with a terminal address, all locally routable addresses associated with the various network entities through which the message is to be transported. In other preferred embodiments of this invention, a method is described for the encapsulation and transport of multiple message addresses within a call set up message which employs a message address stack for that purpose. According to this particular preferred embodiment, the method is adaptable to Asynchronous Transfer Mode (xe2x80x9cATMxe2x80x9d) network devices which can xe2x80x9cPNNIxe2x80x9d network protocols, namely Private Network-Network Interface and Private Network Node Interface signalling and routing protocols.
Recent technological, economic and regulatory trends in the fields of telephony and data communications have resulted in the need for enhanced network interoperability. Where internetworking is to take place among connection oriented networks which operate using different addressing schemes, for instance a plurality of networks comprised of interconnected private networks or service provider networks, special techniques must usually be deployed in order for a message sent from the originating end system to properly route via the intermediate networks to the destination end system. Traditionally, network interoperability has been achieved by the use of routing tables, to support address relocation across different intermediate network boundaries.
Signalling in connection oriented networks is the process of establishing, maintaining and releasing a message connection through the exchange of connection establishment request and connection establishment acknowledgement messages through the network nodes along a given message path. For signalling purposes, each network node device in a given network may be associated with a routing table or the like which provides internal addressing information for all of the destination addresses that are employed by each of the network users. Generally, it is important to maintain routing tables which are relatively compact in size, in that limited memory may be available to each particular network node device for storage of its associated routing table. In any event, and as explained below, if the routing table must grow substantially as users are added or as the network grows, then this results in complexity which limits the size of the network which can be effectively attained.
Where destination addresses are aggregatable or topologically assigned, such that all addresses which are topologically related to each other can be summarized to a small number of addresses that are typically leading digits or prefixes (for example, addresses which are accessed off the same node), the routing table associated with each of the network node devices of the intermediate networks may be maintained to a manageable size. This is because the network node devices within the intermediate networks can advantageously employ prefix-based routing. However, with the advent of applications in telephony such as local number portability, mobility and customer owned addresses, the size and complexity of routing tables can be expected to increase as more addresses lose their topological significance. Where addresses are no longer assigned topologically, conventional switching systems may no longer scale well to larger and larger address spaces as the number of interworked networks which must be addressed is ever increased. This results from the fact that it would be necessary in such circumstances to have a routing table entry for every destination network node device on the interworked network space.
There are also instances where a given intermediate network, according to current standards and practices, may be unable or unwilling to route directly using the address spaces of other interworked networks. These instances include the implementation of Virtual Private Networks (xe2x80x9cVPNsxe2x80x9d), the incorporation and management of networks whose address spaces have been structured without considering the addressing scheme of the intermediate network, and the need in a given networking space to support location management for mobile end-user devices. As well, another example which may result in similar addressing problems for an intermediate network occurs in the context of topological reorganization of the address spaces of networks to which the intermediate network is connected. Yet another example involves situations where the addresses used by the networks connected to the intermediate network are not globally unique as is often the case for the previously mentioned VPNs.
As one technique for achieving some degree of network interoperability, it has been known to transport a message address between two networks where it may be used, across a single network where the message address cannot be used. This technique is sometimes known to those skilled in this art as tunnelling or tunnelled signalling. Typically, in tunnelled signalling, a signalling message employs an endpoint message address which is of routing significance to both the originating and destination interworked networks. Prior to a signalling message arriving at the ingress node of the intermediate network through which the signalling message is to be routed, the endpoint address is encapsulated in the signalling message and is thereafter routed to the appropriate egress node of the intermediate network via an intermediate address which is of routing significance to the intermediate network. Upon emerging from the egress node of the intermediate network, for instance at the ingress node of the destination network, the signalling message reverts to the use of the original endpoint message address which retains its routing significance to the destination network. Thus, this signalling technique is known as xe2x80x9ctunnellingxe2x80x9d since the intermediate network is unaware of the originating and endpoint destination addresses. The intermediate network merely routes these external addresses transparently.
In current ATM signalling standards, various mechanisms for tunnelling have been specified. For instance, such mechanisms are found in the ATM User-Network Interface (xe2x80x9cUNIxe2x80x9d) Specification Versions 2.0, 3.0 and 4.0, respectively dated June 1992, August 1993 and July 1996, each of which is published by the ATM Forum. These particular standards apply in routing connections between private ATM endpoints identified by NSAP formatted ATM addresses across a public network supporting E. 164 ATM addresses. Tunnelled signalling according to these known standards may be supported by the use of an existing message field or Information Element (xe2x80x9cIExe2x80x9d) within the message format of a connection establishment request message, for instance a Call SETUP request message. The existing message field in question is known to those skilled in this art as the Called Party Subaddress IE, and this field may be used to store and encapsulate the destination endpoint address to which a message or call is destined to be routed.
By way of example, in signalling a Call SETUP request message, an egress network node device of an intermediate network may temporarily place the destination endpoint address of the called party, also known as the Called Party Number, into the Called Party Subaddress IE of the SETUP request message. That same network node device may then temporarily place the egress endpoint address of the intermediate network into the Called Party Number field of the Call SETUP request message. The Call SETUP request message can thereafter be routed to the egress endpoint address by the intermediate network. When the SETUP request message enters the destination network, the contents of the Called Party Number field, namely the egress endpoint address of the intermediate network, may be discarded. The destination endpoint address is then assigned from the Called Party Subaddress IE to the Called Party Number field. A similar mechanism for tunnelling applies to the originating address, known as the Calling Party Number.
One problem with the foregoing existing solutions for tunnelled signalling is that the substitution of an intermediate network address can only occur once for a given Call SETUP message. Where more than a single intermediate network must be employed to route a message, and those intermediate networks do not share a common addressing space with the originating and destination networks nor with each other, the known tunnelling mechanisms do not permit more than one of such intermediate networks to be traversed. Likewise, where the message addresses associated with the respective address spaces of the intermediate networks are not topologically significant outside of each such address space, more than one intermediate network cannot be traversed pursuant to the known tunnelling techniques described above. Another problem with the known tunnelling techniques is that public networks, such as service provider networks, are not permitted to use the Called Party Subaddress IE or Calling Party Subaddress IE for tunnelling purposes according to current standards. As a result, this mechanism cannot be used in a standards complaint manner for local number portability, mobility and customer owned address applications.
In networks which operate according to a connectionless packet switched data technology, for instance those operating pursuant to IP or IPX signalling protocols, tunnelling has been accomplished by encapsulating the original packet in a new packet which comprises an additional header for routing the packet across the space through which tunnelling occurs. The original packet which is encapsulated within the new packet retains the original header together with its payload of application data. Typically, the intermediate network nodes which handle tunnelled IP packets will only make use of the outermost header in routing any packet through a space being tunnelled. Such known methods of tunnelling in IP and IPX networks are found in the following references: D. Provan, xe2x80x9cTunnelling IPX Traffic through IP Networksxe2x80x9d, Document No. RFC 1234 dated Jun. 1, 1991; and W. Simpson, xe2x80x9cIP in IP Tunnellingxe2x80x9d, Document No. RFC 1853 dated October, 1995, each reference being issued by the Internet Engineering Task Force (xe2x80x9cIETFxe2x80x9d).
Based on the foregoing, there is therefore a need to provide a transport mechanism to permit address tunnelling with multiple levels of mapping in connection oriented networks, namely wherein addresses may tunnel through multiple successive networks having unrelated address spaces. There is also a need to provide such a transport mechanism in a manner that it may be implemented in service provider networks and private networks at the same time and without ambiguity. Lastly, there is a need to provide a mechanism for address tunnelling which may be implemented either at the egress point of the preceding network or at the ingress point of the succeeding network. It is an object of the present invention to attempt to meet these varied needs with a generic transport mechanism which permits different network node addresses to be used across multiple network boundaries, as explained in greater detail below.
According to a first broad aspect of the present invention, there is provided a method of signalling a message across a plurality of connection oriented network entities. The network entities include an originating network entity, a terminating network entity and at least two of a plurality of intermediate network entities connected successively therebetween. The originating network entity and the terminating network entity each respectively are associated with a terminal address, the terminal address of the originating network entity being a terminal originating address and the terminal address of the terminating network entity being a terminal destination address. At least two contiguous network entities of the connection oriented network entities are associated with addressing spaces through which the message is not routable by way of one of said terminal addresses when same is used as a party number for routing the message and through which the message is not otherwise routable by way of a single address. The message is initiated from the terminal originating address associated with the originating network entity and is routed through the intermediate network entities to be received at the terminal destination address associated with the terminating network entity.
The method of signalling according to the first broad aspect of the invention includes storing said unroutable terminal address as a party number. The message is then-routed according to the party number from the originating network entity through each succeeding and contiguous intermediate network entity, if any, which provides an addressing space through which the message is routable. At every network border between any two contiguous network entities wherein an immediately succeeding network entity does not provide an addressing space through which the message is routable, it is determined whether the party number is to be stored and replaced with a new party number. If so, then the party number is stored so as to permit its subsequent retrieval according to a last-in and first-out precedence to thereby create a stored party number and, once the party number has been stored as aforesaid, a replacement address is assigned as the party number. At every network border between any two contiguous network entities wherein an immediately succeeding network does not provide an addressing space through which the message is routable, it is determined whether the party number is to be discarded and replaced with a stored party number and, if so, the last-in stored party number is assigned as the party number. Following each of said determinations, the message is routed according to the party number and every stored party number is transported, with the message, through the immediately succeeding intermediate network entity and through each further succeeding and contiguous intermediate network entity, if any, through which the message is routable. The foregoing steps are repeated until such time as the message is routable to the terminating network entity according to the party number.
According to a second and a third broad aspect of the present invention, there is provided a method of signalling a message across a plurality of connection oriented network entities. The network entities include an originating network entity, a terminating network entity and a plurality of intermediate network entities connected successively therebetween. The originating network entity and the terminating network entity each are respectively associated with a terminal address. The terminal address of the originating network entity is a terminal originating address and the terminal address of the terminating network entity is a terminal destination address, both of which are selected from a common addressing space. At least two of the intermediate network entities are each associated with addressing spaces that are not topologically significant to each other and that are not topologically significant to the common addressing space from which the terminal originating and terminal destination addresses are selected. The message is initiated from the terminal originating address associated with the originating network entity and routed through the plurality of intermediate network entities to be received at the terminal destination address associated with the terminating network entity.
With reference to the second broad aspect of the present invention, the method of signalling comprises the first step of storing the terminal destination address as a called party number. In the second step, the message is routed according to the called party number from the originating network entity through each succeeding and contiguous intermediate network entity, if any, which shares a topologically significant addressing space with the originating network entity. Thirdly, at every network border between any two contiguous network entities which do not share a topologically significant addressing space with each other, it is determined whether the called party number is to be stored and replaced with a new called party number that is of routing significance to the intermediate network entity which immediately succeeds the border. If so, the called party number is stored so as to permit its subsequent retrieval according to a last-in and first-out precedence to thereby create a stored called party number. Once the called party number has been stored as aforesaid, a local terminal address is assigned as the called party number for progressing the message through the immediately succeeding intermediate network entity. The fourth step also occurs at every border between any two contiguous network entities which do not share a topologically significant addressing space with each other, and involves determining whether the called party number is to be discarded and replaced with a stored called party number, wherein the stored called party number is of routing significance to the intermediate network entity which immediately succeeds the border. If so, the last-in stored called party number is assigned as the called party number for progressing the message through the immediately succeeding intermediate network entity. In the fifth step, the message is routed according to the called party number and, with the message, every stored called party number is transported through the immediately succeeding intermediate network entity and through each further succeeding and contiguous intermediate network entity, if any, which shares a topologically significant addressing space with the immediately succeeding intermediate network entity. The third, fourth and fifth steps are repeated until such time as the message is routable to the terminating network entity according to the called party number.
With reference to the third broad aspect of the present invention, the method of signalling comprises the first step of storing the terminal destination address as a called party number. The second step involves storing the terminal originating address as a calling party number. In the third step, the message is routed according to the called party number from the originating network entity through each succeeding and contiguous intermediate network entity, if any, which shares a topologically significant addressing space with the originating network entity. The fourth step occurs at every network border between any two contiguous network entities which do not share a topologically significant addressing space with each other, determining whether the called party number is to be stored and replaced with a new called party number that is of routing significance to the intermediate network entity which immediately succeeds the border. If so, the called party number and the calling party number are stored so as to permit their subsequent retrieval according to a last-in and first-out precedence to thereby respectively create a stored called party number and a stored calling party number. Once the called party number and the calling party number have been stored as aforesaid, a first local address is assigned as the called party number for progressing the message through the immediately succeeding intermediate network entity and a second local address is assigned as the calling party number. The fifth step occurs at every border between any two contiguous network entities which do not share a topologically significant addressing space with each other, and involves determining whether the called party number is to be discarded and replaced with a stored called party number, wherein the stored called party number is of routing significance to the intermediate network entity which immediately succeeds the border. If so, the last-in stored called party number is assigned as the called party number for progressing the message through the immediately succeeding intermediate network entity and the last-in stored calling party number is assigned as the calling party number. In the sixth step, the message is routed according to the called party number and, with the message, every stored called party number and every stored calling party number are transported through the immediately succeeding intermediate network entity and through each further succeeding and contiguous intermediate entity, if any, which shares a topologically significant addressing space with the immediately succeeding intermediate network entity. The fourth, fifth and sixth steps are repeated until such time as the message is routable to the terminating network entity according to the called party number.
According to a fourth broad aspect of the present invention, there is provided a method for processing a network message associated with a party number according to which the network message is routed and having a message address stack within which at least two addresses may be stored, the method comprising the steps of: (a) reading the party number associated with the network message; (b) determining whether the party number is to be stored and replaced with a new party number and, if so, then storing the party number within the message address stack to permit its subsequent retrieval according to a last-in and first-out precedence to thereby create a stored party number and, once the party number has been stored as aforesaid, assigning a replacement address as the party number; and (c) following step (b), routing the message according to the party number.
According to a fifth broad aspect of the present invention, there is provided a method for processing a network message associated with a party number according to which the message is routed and having a message address stack within which at least two addresses may be stored and retrieved according to a last-in and first-out precedence, the method comprising the steps of: (a) reading the party number associated with the network message; (b) determining whether the party number is to be discarded and replaced with an address stored within the message address stack and, if so, assigning a last-in stored party number of the message address stack as the party number; and (c) following step (b), routing the network message according to the party number.
According to a sixth broad aspect of the present invention, there is provided a network switch for processing a network message associated with a party number according to which the message is routed and having a message address stack within which at least two addresses may be stored and retrieved according to a last-in and first-out precedence, the network switch comprising: (a) means for reading the party number associated with the network message; (b) means for determining whether the party number is to be stored and replaced with a new party number; (c) means for storing the party number within the message address stack to permit its subsequent retrieval according to a last-in and first-out precedence to thereby create a stored party number; (d) means for assigning a replacement address as the party number; and (e) means for routing the message according to the party number once said replacement address has been so assigned.
According to a seventh broad aspect of the present invention, there is provided a network switch for processing a network message associated with a party number according to which the message is routed and having a message address stack within which at least two addresses may be stored and retrieved according to a last-in and first-out precedence, the network switch comprising: (a) means for reading the party number associated with the network message; (b) means for determining whether the party number is to be discarded and replaced with an address stored within the message address stack; (c) means for assigning a last-in stored party number of the message address stack as the party number; and (d) means for routing the message according to the party number once said last-in stored party number has been so assigned as the party number.